﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Xiami.Helper.Method
{
    public class DecodeUrl
    {
        /// <summary>
        /// 解密下载地址
        /// </summary>
        /// <param name="encodedPath"></param>
        /// <returns></returns>
        public static string DecodeDownloadPath(string encodedPath)
        {
            if (encodedPath == null || encodedPath == string.Empty || encodedPath == "")
            {
                return string.Empty;
            }
            try
            {
                int a7;
                int a2 = int.Parse(encodedPath.Substring(0, 1));
                Console.WriteLine("a2:" + a2);
                string a3 = encodedPath.Substring(1);
                int a4 = (int)Math.Floor(((double)a3.Length) / ((double)a2));
                int a5 = a3.Length % a2;
                List<string> a6 = new List<string>();
                while (a6.Count < a5)
                {
                    a6.Add("");
                }
                for (a7 = 0; a7 < a5; a7++)
                {
                    a6[a7] = a3.Substring((a4 + 1) * a7, a4 + 1);
                }
                a7 = a5;
                while (a6.Count < a2)
                {
                    a6.Add("");
                }
                while (a7 < a2)
                {
                    a6[a7] = a3.Substring((a4 * (a7 - a5)) + ((a4 + 1) * a5), a4);
                    a7++;
                }
                string a8 = "";
                for (a7 = 0; a7 < a6[0].Length; a7++)
                {
                    for (int a10 = 0; a10 < a6.Count; a10++)
                    {
                        if (a7 < a6[a10].Length)
                        {
                            a8 = a8 + a6[a10].Substring(a7, 1);
                        }
                    }
                }
                a8 = Uri.UnescapeDataString(a8);
                string a9 = "";
                for (a7 = 0; a7 < a8.Length; a7++)
                {
                    if (a8.Substring(a7, 1) == "^")
                    {
                        a9 = a9 + "0";
                    }
                    else
                    {
                        a9 = a9 + a8.Substring(a7, 1);
                    }
                }
                return a9.Replace('+', ' ');
            }
            catch
            {
                return string.Empty;
            }
        }
    }
}
